home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / progtool / c / egem_210 / egem / e_gem.txt
Text File  |  1995-11-25  |  16KB  |  344 lines

  1.  
  2.                       EnhancedGEM-Library  Version 2.10
  3.                      -----------------------------------
  4.                         (c) 1994 Christian Grunenberg
  5.  
  6.  
  7.  
  8.  Wichtigste Änderungen gegenüber der letzten Version:
  9. -----------------------------------------------------
  10.  (genaue Änderungen s. History und Anleitung)
  11.  
  12.  - mehr als 50 neue u. 12 geänderte Funktionen
  13.  - neue Beispielprogramme zur Demonstration der Fensterroutinen
  14.    (u.a. Resource-Previewer, Clipboard-Viewer, XClipboard und ein einfacher
  15.    Datei-Viewer (Text, Image, ASCII-Dump))
  16.  - Light-Version der Library durch Definition des Makros 'SMALL_EGEM'
  17.  - komplette Fensterverwaltung, u.a. optional Redraw und Scrolling durch
  18.    die Library, Ikonifizierung (ICFS,MTOS und ansonsten ICFS-kompatibel
  19.    dank Dirk Haun)
  20.  - Unterstützung diverser Drag&Drop-Varianten als Empfänger und Sender
  21.  - Fensterdialoge können jetzt alle Fensterelemente besitzen
  22.  - optimierte Ereignisverwaltung, u.a. schnellere Timer und gepufferte,
  23.    interne Nachrichtenverwaltung sowie 4 Timer-Events
  24.  - Clipboard-Protokoll an offizielle Version angepaßt
  25.  - System- (mit Überschrift)/Applikationsmodale Alertboxen, bis zu 16
  26.    Zeilen Text, Text der Alertbox optional mit allen Textattributen
  27.  - Definition des View-Protokolls integriert
  28.  - Eingabefelder in Dialogen können Text per ACC_TEXT empfangen
  29.  - alle Eingabefelder eines Dialogs mit Shift-Esc löschen
  30.  - TriState-Checkboxen (Checkboxen mit TOUCHEXIT-Flag)
  31.  - beliebige GDOS-Fonts/-Größen sowie VDI-Schreibmodi bei Attribut-Text
  32.  - nicht-proportionale GDOS-Fonts in Eingabefeldern, sofern dies vom AES
  33.    unterstützt wird
  34.  
  35.  1. Rechtliches:
  36. -----------------
  37.  
  38.  EnhancedGEM ist inklusive aller Quelltexte (in C und Assembler) und
  39.  (Beispiel-) Programme Freeware, d.h. jedermann/-frau darf EnhancedGEM
  40.  beliebig oft und lang kopieren, benutzen und weitergeben.
  41.  Allerdings darf das Archiv nur unverändert weitergegeben werden, d.h.
  42.  u.a. dürfen keine Dateien gelöscht oder Änderungen/Erweiterungen in den
  43.  Sourcen vorgenommen werden. PD-Versender oder kommerzielle Mailboxen,
  44.  welche mit Gewinn arbeiten, dürfen EnhancedGEM NICHT verbreiten, solange
  45.  sich diese nicht ein schriftliche Genehmigung bei mir eingeholt haben.
  46.  
  47.  Eine kommerzielle Nutzung der Library für Share- oder Löhnware ist unter-
  48.  sagt, sofern sie nicht mit mir abgesprochen wurde! U.a. erwarte ich in
  49.  diesem Fall entweder eine einmalige, geringe "Entschädigung" oder
  50.  alternativ eine geringe Beteiligung an der Sharewaregebühr bzw. dem
  51.  Verkaufspreis (1 bis 2 Mark pro Stück bzw. abhängig vom Preis auch mehr
  52.  oder weniger). Für private Projekte sowie Freeware-, Fairware- oder PD-
  53.  Software gelten diese Einschränkungen natürlich nicht.
  54.  
  55.  Für die einwandfreie Funktionalität der Library kann und will ich nicht
  56.  garantieren und übernehme daher keinerlei Verantwortung für Schäden je-
  57.  glicher Art, die von der Library oder den beiliegenden Programmen verur-
  58.  sacht werden.
  59.  
  60.  Die Benutzung von EnhancedGEM erfolgt somit auf EIGENE Gefahr!
  61.  
  62.  
  63.  2. Support:
  64. -------------
  65.  
  66.  Die neueste Version der Library ist jeweils in der Maus Stuttgart 2
  67.  (Tel.: 0711-6364625) erhältlich oder kann direkt bei mir bezogen werden
  68.  (frankierten und adressierten Rückumschlag an mich senden). Bei Fragen
  69.  und/oder Fehlermeldungen kann man sich ebenfalls an mich wenden.
  70.  
  71.      Christian Grunenberg
  72.      Traminerweg  5
  73.      D-71717 Beilstein
  74.  
  75.      Tel.: 07062 - 5287 (möglichst nicht vor 12 Uhr)
  76.  
  77.      E-Mail:
  78.      Christian Grunenberg@S2 (Mausnet)
  79.      Christian_Grunenberg@S2.maus.de (Usenet)
  80.  
  81.  3. Fähigkeiten und Bedienung:
  82. -------------------------------
  83.  
  84.     - Resource-Previewer
  85.     - läßt sich mit GNU-C, Pure C und Lattice C einsetzen
  86.     - an MultiTOS, MiNT (Programme laufen u.a. in der MiNT-Domain),
  87.       Mag!X (ab V2.0), Geneva sowie Winx (ab V2.1) angepaßt
  88.     - Definitionen der Protokolle XAcc2, AV, Menü, Clipboard, View
  89.       und Drag & Drop
  90.     - XAcc2-, AV-, Clipboard- und Drag&Drop-Protokolle werden automatisch
  91.       unterstützt
  92.     - verbesserte Ereignis-Verwaltung mit 4 Rechteck-, 2 Button- und
  93.       4 Timer-Events sowie optimierte Pufferung von (Fenster-) Nachrichten
  94.       bei geöffneten systemmodalen Dialogen oder Popups (u.a. werden
  95.       mehrfache Nachrichten sowie Redraws zusammengefaßt)
  96.  
  97.     - Fensterverwaltung und -funktionen:
  98.         - Routinen zur Verwaltung von Fenstern (Öffnen, Schließen, Setzen,
  99.           Scrolling, Redraw, usw.)
  100.         - Ikonifizieren von Fenstern unter MTOS (ab V1.07), MagiC (ab V3.00),
  101.           Geneva, bei vorhandenem ICFS und ansonsten ICFS-kompatibel
  102.         - ikonifizierte Darstellung (Titel und Icon) bei jedem Fenster
  103.           optional wählbar
  104.         - optional Redraw und Scrolling vollautomatisch
  105.         - Unterstützung der Winx-Scrollboxen
  106.         - im ikonifizierten Zustand werden alle Fensternachrichten auto-
  107.           matisch ausgewertet
  108.         - Fenster wechseln/schließen (Hotkeys und Menüpunkte definierbar)
  109.         - Fensterfuller per Hotkey Ctrl-#* (* auf Ziffernblock) anwählbar
  110.         - An-/Abmeldung der Fenster beim AV-Server
  111.         - optionale Hintergrundbedienung unter allen TOS-Versionen
  112.         - bei geöffneten systemmodalen Dialogen oder Popups werden Nach-
  113.           richten und zu setzende Werte automatisch bis zum Schließen
  114.           der Dialoge/Popups gepuffert und dann an die Ereignisver-
  115.           waltung weitergeleitet
  116.  
  117.      - Ikonififizierung von Fenstern bei vorhandenem ICFS-Server:
  118.          (analog, falls weder MTOS- noch ICFS-Ikonifizierung vorhanden)
  119.  
  120.         - [Alternate]-Closer - ein einzelnes Fenster verkleinern
  121.           (Hotkey: Ctrl-Space)
  122.         - [Shift]-Closer     - alle Fenster einzeln verkleinern
  123.           (Hotkey: Ctrl-Shift-Space)
  124.         - [Control]-Closer   - alle Fenster in ein Fenster verkleinern
  125.         - Mausklick in ein verkleinertes Fenster öffnet es wieder an der
  126.           alten Position
  127.  
  128.     - einfache Menüverwaltung:
  129.         - An-/Abmeldung und (De-) Aktivierung der Menüleiste
  130.         - Menueinträge (de-) aktivieren sowie Menütitel (de-) selektieren
  131.         - Abfrage, ob ein Drop-Down-Menü heruntergeklappt ist
  132.  
  133.     - Dialogverwaltung:
  134.         - unmodale/modale Fensterdialoge, fliegende und normale Dialoge
  135.         - beliebig viele Fenster-/fliegende Dialoge gleichzeitig
  136.         - Fensterdialoge können alle Fensterelemente des AES besitzen,
  137.           wobei die zusätzlichen Elemente von der Applikation gesetzt und
  138.           ausgewertet werden müssen
  139.         - fliegende Dialoge springen zur Mausposition bei Mausklick außer-
  140.           halb des Dialogs und fliegen optional bei Klick auf nicht-selek-
  141.           tierbares Objekt (u.a. system-modale Alertboxen)
  142.         - Rechtsklick auf Objekt im Vordergrund-Dialog (bei aktiver Hinter-
  143.           grundbedienung auch im Hintergrund-Dialog) simuliert Doppelklick
  144.         - Fensterdialoge durch zusätzlich gedrückte rechte Maustaste im
  145.           Hintergrund bedienbar (optional auch ohne rechte Maustaste)
  146.         - Tastaturbedienung der Dialoge, wobei in Dialogen mit Edit-Feldern
  147.           zusätzlich die Alternate-Taste gedrückt werden muß
  148.           (Doppelklick-Simulation durch zusätzlich gedrückte Shift-Taste)
  149.         - Tastendrücke optional zum Dialog unter dem Mauszeiger
  150.  
  151.     - erweiterte Alert-Funktion:
  152.         - 18 vordefinierte Icons
  153.         - benutzerdefinierte Icons beliebiger Größe
  154.         - beliebig lange Zeilen und Buttons
  155.         - Alert-Text optional mit allen Textattributen
  156.         - maximal 16 Zeilen sowie 5 Buttons
  157.         - Buttons über Hotkey anwählbar (auch ohne Alternate-Teste)
  158.         - Buttons linksbündig/rechtsbündig/zentriert sowie optional
  159.           mit einheitlicher Breite
  160.         - System- oder Applikationsmodal
  161.  
  162.     - erweiterte Möglichkeiten in Eingabe-Feldern
  163.         - Text kann per ACC_TEXT-Nachricht eingegeben werden:
  164.             - Ist der Text einzeilig und enthält keinen Zeilentrenner
  165.               (CR,LF), so wird der Text an das aktuelle Eingabefeld
  166.               angehängt. Ansonsten wird der Text eingefügt und mit jedem
  167.               Zeilentrenner wird zum nächsten Eingabefeld gesprungen, so
  168.               daß durch die Übergabe eines mehrzeiligen Textes z.B.
  169.               alle Eingabefelder ausgefüllt werden können
  170.         - exakte Cursorpositionierung per Maus
  171.         - Mauscursor wird über Eingabefeldern zum Textcursor
  172.         - Enthält die Eingabemaske eines der Zeichen ',.;:\/' und wird
  173.           dieses Zeichen eingegeben, wenn der Cursor VOR diesem Zeichen
  174.           steht, so wird das Eingabefeld bis zu diesem Zeichen mit
  175.           Leerzeichen gefüllt und der Cursor hinter dieses Zeichen
  176.           gesetzt (Beispiel: Punkt '.' in Dateimasken)
  177.         - erstes/letzes Eingabefeld (Home/Shift-Home, Shift-Up/Down)
  178.         - Wort vor/zurück (Ctrl-Left/Right)
  179.         - Anfang/Ende des Eingabesfeldes (Shift-Left/Right)
  180.         - vorheriges Eingabesfeld (Up,Shift-Tab/Enter/Return)
  181.         - nächstes Eingabefeld (Down/Tab/Enter)
  182.         - Cursor ein Zeichen nach links/rechts (Left/Right)
  183.         - Eingabefeld löschen (Esc)
  184.         - alle Eingabefelder löschen (Shift-Esc)
  185.         - Eingabefeld ab Cursor löschen (Shift-Del)
  186.         - Eingabefeld bis Cursor löschen (Shift-Backspace)
  187.         - Eingabebox für alle Ascii-Zeichen (Shift-Insert)
  188.         - Sonderzeicheneingabe durch Eingabe des dezimalen ASCII-Wertes
  189.           bei gedrückter Alternate-Taste auf dem Ziffernblock
  190.             => sofern der ASCII-Wert nicht eindeutig ist (ASCII<=25), müssen
  191.                alle drei Stellen (evtl. mit führenden Nullen) eingegeben
  192.                werden
  193.         - Undo (Undo bzw. Shift-Undo, sofern Undo-Button vorhanden)
  194.         - History-Funktion der letzten eingegebenen Texte (Ctrl-Up/Down)
  195.             => mit Shift-Taste: Text in History suchen
  196.         - Clipboardunterstützung:
  197.             => mit Shift-Taste: Text an Clipboard/Eingabe-Feld anhängen
  198.             -> Ctrl-X: Text ausschneiden und in Clipboard ablegen
  199.             -> Ctrl-C: Text in Clipboard ablegen
  200.             -> Ctrl-V: Text in Eingabefeld einfügen
  201.         - Einfüge-/Überschreibenmodus (Insert)
  202.             => Strich-/Block-Cursor
  203.         - neue zusätzliche Gültigkeitsmasken in Eingabefeldern:
  204.             'c','C': Ziffern "0-9", Komma ".,", Rechenzeichen "+-*/^",
  205.                      Klammern "(){}[]"
  206.             'l','L': LED-Ziffern "0-9"
  207.             '<Ziffer>': Ziffer='0'-'9'
  208.                      alle Ziffern von '0' bis <Ziffer>, z.B.
  209.                      '1': Binärziffern
  210.                      '7': Oktalziffernn
  211.                      '9': Dezimalziffern
  212.             'h','H': Hexadezimalziffern "0-9A-F",
  213.                      Umwandlung in Klein/Großbuchstaben
  214.             'u','U': ASCII 32-127, Umwandlung in Klein-/Großbuchstaben
  215.             'v','V': ASCII 32-255, Umwandlung in Klein-/Großbuchstaben
  216.             'w','W': ASCII 32-127
  217.             'y','Y': ASCII 32-255
  218.         - größtenteils automatische Anpassung (sofern möglich) der
  219.           eingegeben Zeichen an Gültigkeitsmaske
  220.         - kleiner/großer System-Font können in Eingabefeldern benutzt
  221.           werden. Unterstützt das AES auch nicht-proportionale GDOS-Fonts,
  222.           so können diese ebenfalls in Eingabefeldern verwendet werden.
  223.         - Bedeutung von Return wahlweise
  224.             - Return selektiert DEFAULT-Objekt
  225.             - Return springt zum nächsten Eingabefeld (zyklisch)
  226.             - Return selektiert beim letzten Eingabefeld das DEFAULT-Objekt
  227.  
  228.     - Cookie-/Scrap-/Resource- u. Environment-Library
  229.     - einfache Funktionen zur Verwaltung von Pfad-/Dateinamen sowie zum
  230.       Aufruf des Fileselectors
  231.     - erweiterte Rectangle- & Object-Library (u.a. von PC-GEM 2.0), u.a.
  232.         - Bildschirmbereiche kopieren, löschen, invertieren, sichern
  233.           und wiederherstellen
  234.  
  235.     - viele erweiterte Objekte:
  236.         - Radio-Buttons
  237.         - (TriState-) Check-Buttons
  238.         - Cycle-Buttons für Popups
  239.         - Help-Button
  240.         - Undo-Button
  241.         - Text mit Attributen
  242.             - unterstrichen,kursiv,umrandet,schattiert,fett,hell,klein/groß
  243.             - beliebige GDOS-Fonts und Größe wählbar (unabhängig vom AES!)
  244.         - Rahmen mit Titel
  245.         - Titel (=unterstrichener Text)
  246.             - beliebige Strichdicke, optional doppelt unterstrichen
  247.         - Flugecke
  248.         - Slider-Arrows (opt. umrandet)
  249.         - Niceline
  250.         - opt. von Eingabefeldern abhängiges DEFAULT-Objekt
  251.         - unmodale und modale Objekte, d.h. die Objekte kommen nur in
  252.           (un-) modalen Dialogen vor
  253.         - usw.
  254.  
  255.     - Echtzeitgummiband/-schieber mit halb- oder vollautomatischer Ver-
  256.       waltung bzw. Ereignisauswertung sowie optionaler Tastaturbedienung
  257.  
  258.     - variable Popup-Menüs (vollständig tastaturbedienbar (Hotkeys),
  259.       frei positionierbar)
  260.         - Hotkeys (unterstrichener Buchstabe, optional mit gedrückter
  261.           Alternate-Taste)
  262.         - vorheriger Eintrag (Cursor links/hoch)
  263.         - nächster Eintrag (Cursor rechts/runter)
  264.         - erster Eintrag (Home)
  265.         - letzter Eintrag (Shift-Home)
  266.         - Abbruch (Escape/Undo)
  267.         - aktuellen Eintrag auswählen (Space,Return)
  268.  
  269.     - Dialogoptik in weiten Grenzen variierbar:
  270.         - Hintergrundbox (Muster,Farbe,Rahmen)
  271.         - Flugecke wird an Hintergrundbox angepaßt
  272.         - Rahmen (Schrift einfach/doppelt umrandet,Schriftgröße)
  273.         - Titel-Unterstrich (Länge,Dicke,einfach/doppelt unterstrichen)
  274.         - Farben der erweiterten Objekte
  275.         - viele Varianten der Radio-/Check/Cycle-Buttons sowie Sliderpfeile
  276.         - usw.
  277.  
  278.     - sauber programmiert, d.h. unabhängig von
  279.         - Computer ((MEGA) ST/STE,TT,Falcon,Emulator usw.)
  280.         - Auflösung und Anzahl der Farben
  281.         - Betriebsystem (TOS,MTOS,MiNT,MagiC,Geneva,MultiGEM usw.)
  282.         - VDI/GDOS-Treiber
  283.         - Größe des System-Fonts
  284.  
  285.     - usw.
  286.  
  287.  4. Benutzung der Library:
  288. ---------------------------
  289.  
  290.  Durch die beiliegenden, kommentierten Beispielprogramme, welche einen Teil
  291.  der Fähigkeiten demonstrieren, sowie die Dokumentation der Funktionen,
  292.  Variablen und Strukturen bzw. Konstanten in der Datei 'MANUAL.TXT' bzw.
  293.  dem Hypertext 'E_GEM.HYP' sollte die Verwendung der Library kein größeres
  294.  Problem darstellen.
  295.  
  296.  Eine weitere Hilfe sind sicherlich die veröffentlichten Quelltexte der
  297.  Library sowie der WinLupe als weiteres Beispielprogramm. Sollte jemand
  298.  dennoch Probleme mit oder Fragen bzgl. der Library haben, so kann er sich
  299.  an mich wenden.
  300.  
  301.  5. Bisherige EnhancedGEM-Applikationen:
  302. -----------------------------------------
  303.  (abgesehen von weniger nützlichen Beispielprogrammen)
  304.  
  305.  - WindowViewer (Datei-Viewer als kommentiertes Beispielprogramm,PD)
  306.  - ClipboardViewer (Clipboardviewer als kommentiertes Beispielprogramm,PD)
  307.  - XClipboard (XClipboard-Clone,PD)
  308.  - PreView (Resource-Previewer,PD)
  309.  - WinLupe (saubere Bildschirmlupe,PD)
  310.  - LZH-Shell (Shell zu LHarc,Fairware)
  311.  
  312.  - ESS-Code (GEM-UUencoder/-decoder,Shareware) von Michel Forget
  313.  - Before Dawn (Bildschirmschoner,Shareware) von Arne Rudolph
  314.  - PLZ (Postleitzahlenkonvertierer,PD) von Andreas Schrell
  315.  - DB-Log (Loginstatistik-Programm zur D-Box,PD) von Arne Konopinski
  316.  - PassThru (Desktoperweiterung,PostCardWare) von Florian Erhard
  317.  - 800XL Deejay (800XL-Laufwerksemulator,PD) von Kolja Koischwitz
  318.  - ACP (Another Crude Player,Freeware) von Carsten Tolkmit
  319.  - Thor (GEM-Variante des Spiels Thor,Shareware) von Jean-Jaques Michel
  320.  - GDOS-Print (Ausdrucken über GDOS, PD) von Steffan Kaminski
  321.  
  322. in Arbeit:
  323.  - Simpl (Texteditor mit Highlighting,PD) von Frank Laus
  324.  - Laborant professionell (Chemie-Analyseprogramm,PD) von Jens Schulz
  325.  - u.a.
  326.  
  327.  6. Zukunft
  328. ------------
  329.  
  330.  In Abhängigkeit von meiner Lust, der vorhandenen Zeit, der Resonanz auf
  331.  diese Library und der Anzahl der veröffentlichten EnhancedGEM-Appli-
  332.  kationen sind für die Zukunft folgende Dinge geplant:
  333.  
  334.     - Fenster-Menüs
  335.     - Font-Selector-Box
  336.     - Listboxen
  337.     - Text-Fenster
  338.     - Toolbars
  339.     - Werteingabefelder
  340.     - scrollbare Eingabefelder
  341.     - neue erweiterte Objekttypen
  342.     - Unterstützung der Help-, View- und Menü-Protokolle
  343.     - usw...
  344.